package com.qdlc.p2p.dal.dao;

import java.util.List;

import com.qdlc.p2p.dal.common.dao.BaseDao;
import com.qdlc.p2p.dal.dto.UpRateCollection;
import com.qdlc.p2p.dal.dto.User;

/**
 * 加息券产生待收差额DAO接口
 * @author wj
 * @version 2.0
 * @since 2015-04-22
 */
public interface UpRateCollectionDao extends BaseDao<UpRateCollection> {

    /**
     * 查询加息券产生待收差额
     * 
     * @param id 主键ID
     * @return加息券产生待收差额实体
     */
    UpRateCollection getUpRateCollectionById(long id);
    
    /**
     * 根据借款id和借款期数，查询档期
     * 使用加息券投资所产生的待收利息差额记录
     * @param borrowId
     * @param period
     * @return
     */
    List<UpRateCollection> getUpRateCollection(long borrowId,int period);
    
    /**
     * 根据collectionid获取相对应的加息记录
     * @param collectionId
     * @return
     */
    UpRateCollection getUpRateCollectionByCId(long collectionId);
    
    /**
     * 获取每月加息券产生的利息
     * @param year
     * @param month
     * @param status
     * @return
     */
    public double getUpRateCollection(String year, String month , int status);
    
    /**
     * 根据collectionId获取加息利息
     * @param collectionId
     * @return
     */
    double getUpRateInterestByCollectionId(long collectionId);
    
    /**
   	 * 获取加息券 产生的代收利息列表（账户中心使用）
   	 * @param user
   	 * @param date
   	 * @return
   	 */
   	public List<Object[]> getRateCollectionInterest(User user,String date);

   	/**
   	 * 根据标Id 和期数 查询状态为0的加息利息之和
   	 * @param borrowId
   	 * @param period
   	 * @return
   	 * @param
   	 */
	double upRateCollectionSum(long borrowId, int period);
}
